/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cliente;

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ConnectException;
import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;


/**
 * Clase que contiene los datos necesarios para que el cliente establezca la conexión al servidor
 * 
 * @author Carlos
 */
public class Cliente {

    private String ip;
    private String puerto;
    private String mensajeParaUsuario;
    private List<Configuracion> configuracion;
    lecturaArchivo lecturaArchivo;
    XStream xs = new XStream(new DomDriver());
    
    
    /**
     * Constructor de cliente por defecto
     * 
     */

    public Cliente(){
    
    }
    
    /**
     * Constructor de cliente personalizado para la ventana ClienteSocket
     * 
     * @param ventanaCliente la ventana principal del cliente
     */
     
    public Cliente(ClienteSocket ventanaCliente){
        lecturaArchivo = new lecturaArchivo();
        configuracion = new ArrayList<Configuracion>();
        setConfiguracion(lecturaArchivo.LeerArchivoConfiguracion());
    }
    
    /**
     * 
     * @param args the command line arguments
     */

    /**
     * Obtenemos el mensaje de error para usuario
     * 
     * @return el mensajeParaUsuario
     */
    public String getMensajeParaUsuario() {
        return mensajeParaUsuario;
    }

    /**
     * Seteamos el mensaje de error para el usuario
     * 
     * @param mensajeParaUsuario el mensajeParaUsuario a setear
     */
    public void setMensajeParaUsuario(String mensajeParaUsuario) {
        this.mensajeParaUsuario = mensajeParaUsuario;
    }

    /**
     * Obtenemos el IP del servidor
     * 
     * @return la ip
     */
    public String getIp() {
        return ip;
    }

    /**
     * Seteamos el IP que necesitamos para la conexión
     * 
     * @param ip el ip a setear
     */
    public void setIp(String ip) {
        this.ip = ip;
    }

    /**
     * Obtenemos el puerto de conexión
     * 
     * @return el puerto
     */
    public String getPuerto() {
        return puerto;
    }

    /**
     * Seteamos el puerto desde donde se conecta el cliente
     * 
     * @param puerto el puerto a setear
     *
     */
    public void setPuerto(String puerto) {
        this.puerto = puerto;
    }

    /**
     * Obtenemos la lista de puertos de un archivo .xml que contiene la configuración del usuario
     * 
     * @return la configuracion
     */
    public List<Configuracion> getConfiguracion() {
        return configuracion;
    }

    /**
     * Seteamos la lista de puertos contenidos en la configuración
     * 
     * @param configuracion the configuracion to set
     */
    public void setConfiguracion(List<Configuracion> configuracion) {
        this.configuracion = configuracion;
    }

}
